package DAO;


import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import DBConection.ConexionBD;
import Modelo.*;

public class VehiculoDao {

	private Connection conn;

	public VehiculoDao() {
		conn = ConexionBD.getConnection();
	}

	public void addVehiculo(Vehiculo objvehiculo) {

		try {

			String sql = "INSERT INTO "+ConexionBD.getNombre_BD()+".TBL_Vehiculos(categoriaId,placa,marca,modelo,prototipo,capacidad_max,peso_max,dimensiones_Carga,estado)"
					+ " VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)";
			PreparedStatement ps = conn.prepareStatement(sql);

			ps.setInt(1, objvehiculo.getCategoriaId());
			ps.setString(2, objvehiculo.getPlaca());
			ps.setString(3, objvehiculo.getMarca());
			ps.setInt(4, objvehiculo.getModelo());
			ps.setString(5, objvehiculo.getPrototipo());
			ps.setFloat(6, objvehiculo.getCapacidad_Max());
			ps.setFloat(7, objvehiculo.getPeso_Max());
			ps.setString(8, objvehiculo.getDimensiones_Carga());
			ps.setInt(9, objvehiculo.getEstado());
			ps.executeUpdate();

		} catch (SQLException e) {
			e.printStackTrace();
		}
	}	
		public void removeVehiculo(int vehiculoId) {
			try {
				String sql = "DELETE FROM "+ConexionBD.getNombre_BD()+".TBL_Vehiculos WHERE vehiculoId=?";
				PreparedStatement ps = conn.prepareStatement(sql);
				ps.setInt(1, vehiculoId);
				ps.executeUpdate();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		public void editVehiculo(Vehiculo objvehiculo) {
			try {
				String sql = "UPDATE "+ConexionBD.getNombre_BD()+".TBL_Vehiculos SET CategoriaId=?, placa=?, marca=?, modelo=?, prototipo=?, capacidad_max=?, peso_max=?,dimensiones_Carga=?,estado=? "
						+ " WHERE vehiculoId=?";
				PreparedStatement ps = conn.prepareStatement(sql);

				ps.setInt(1, objvehiculo.getCategoriaId());
				ps.setString(2, objvehiculo.getPlaca());
				ps.setString(3, objvehiculo.getMarca());
				ps.setInt(4, objvehiculo.getModelo());
				ps.setString(5, objvehiculo.getPrototipo());
				ps.setFloat(6, objvehiculo.getCapacidad_Max());
				ps.setFloat(7, objvehiculo.getPeso_Max());
				ps.setString(8, objvehiculo.getDimensiones_Carga());
				ps.setInt(9, objvehiculo.getEstado());
				ps.setInt(10, objvehiculo.getVehiculoId());
				ps.executeUpdate();

			} catch (SQLException e) {
				e.printStackTrace();
			}
		}

		public List<Vehiculo> getAllVehiculos() {
			List<Vehiculo> vehiculos = new ArrayList<Vehiculo>();
			try {
				String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Vehiculos";
				PreparedStatement ps = conn.prepareStatement(sql);
				ResultSet rs = ps.executeQuery();
				while (rs.next()) {
					Vehiculo objvehiculo = new Vehiculo();
					objvehiculo.setVehiculoId(rs.getInt("vehiculoId"));
					objvehiculo.setCategoriaId(rs.getInt("categoriaId"));
					objvehiculo.setPlaca(rs.getString("Placa"));
					objvehiculo.setMarca(rs.getString("Marca"));
					objvehiculo.setModelo(rs.getInt("Modelo"));
					objvehiculo.setPrototipo(rs.getString("Prototipo"));
					objvehiculo.setCapacidad_Max(rs.getInt("Capacidad_Max"));
					objvehiculo.setPeso_Max(rs.getFloat("Peso_Max"));
					objvehiculo.setDimensiones_Carga(rs.getString("Dimensiones_Carga"));
					objvehiculo.setEstado(rs.getInt("Estado"));
					vehiculos.add(objvehiculo);
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}

			return vehiculos;
		}

		public Vehiculo getVehiculoById(int vehiculoId) {
			Vehiculo objvehiculo = new Vehiculo();
			try {
				String sql = "SELECT * FROM "+ConexionBD.getNombre_BD()+".TBL_Vehiculos WHERE vehiculoId=?";
				PreparedStatement ps = conn.prepareStatement(sql);
				ps.setInt(1, vehiculoId);
				ResultSet rs = ps.executeQuery();

				if (rs.next()) {
					objvehiculo.setVehiculoId(rs.getInt("vehiculoId"));
					objvehiculo.setCategoriaId(rs.getInt("categoriaId"));
					objvehiculo.setPlaca(rs.getString("Placa"));
					objvehiculo.setMarca(rs.getString("Marca"));
					objvehiculo.setModelo(rs.getInt("Modelo"));
					objvehiculo.setPrototipo(rs.getString("Prototipo"));
					objvehiculo.setCapacidad_Max(rs.getInt("Capacidad_Max"));
					objvehiculo.setPeso_Max(rs.getFloat("Peso_Max"));
					objvehiculo.setDimensiones_Carga(rs.getString("Dimensiones_Carga"));
					objvehiculo.setEstado(rs.getInt("Estado"));
				}
			} catch (SQLException e) {
				e.printStackTrace();
			}
			return objvehiculo;
		}	
		
	

}

